package server.comunicaciones;

import client.comunicaciones.IJugador;

import server.presentacion.JFServer;
import server.dominio.Sudoku;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;
import java.util.Hashtable;
import java.util.Vector;



@SuppressWarnings(value = "serial")
public abstract class Server extends UnicastRemoteObject implements IServer {

	protected Server() throws RemoteException { //si no creaba el constructor me daba error pero nose si una clase abstracta puede tener constructor
		super();
		// TODO Auto-generated constructor stub
	}

	public abstract void Server(JFServer ventana) throws RemoteException;

	public abstract void poner(String id, byte idCuadricula, byte fila, byte columna, byte numero) throws RemoteException;

	public abstract void quitar(String id, byte idCuadricula, byte fila, byte columna) throws RemoteException;

	public abstract void conectar(int tipoPersistencia, String ubicacionSudokus) throws MalformedURLException, RemoteException;

	public abstract void desconectar() throws RemoteException, MalformedURLException, NotBoundException;

	public abstract String getSudoku(IJugador jugador, String idSudoku, String idJugador) throws Exception;

	public abstract Vector<String> getSudokuss() throws Exception;

	public abstract void putServer(Sudoku result);

	public abstract Sudoku findServer(int id);

	public abstract void guardar(String numeros) throws Exception;
}